Over the past twenty years there has been a dramatic and continual increase in the number and types of television programming available to television viewers. Traditional delivery systems, such as broadcast television, however, are limited in that the programming provided is temporally fixed—that is a viewer must tune into a particular broadcast at the time when it is shown. Although traditional delivery models have the advantage of allowing virtually unlimited increases in audience size, these models are inconvenient because they do not allow television viewers to alter the broadcast pattern to comport to their own viewing patterns.
For many years now, attempts have been made to develop new delivery systems that provide users with more control over broadcast programming. Ideally, it should be possible for most viewers to obtain access to particular content at the time of their choosing, notwithstanding the time of day or the number of other viewers simultaneously requesting access. It is also desirable for each viewer to have the ability to perform random-access operations on the program such as Play, Pause, Fast Forward, Rewind, Stop, and Resume Play as in a conventional Video Cassette Recorder. This delivery model is known as true “video-on-demand” (VOD). The problem with implementing a true VOD system is that the most intuitively simple solution in which a central service provides a separate transmission of a program to individual subscribers upon their requests, requires duplication of equipment and substantial bandwidth resources. Despite recent advances in video compression technology, there still exists a limited amount of bandwidth that may be used to fulfill viewer demands. For this reason, numerous research efforts have been undertaken in an effort to simulate true VOD service by providing viewers with more options while minimizing the number of channels, and consequently the amount of bandwidth, used to broadcast any one program.
One solution is a technique known as “near video-on-demand” (NVOD). In this delivery system, programs that are in high demand are broadcast on multiple channels with a short, preset interval between the starting time of each program broadcast. For example, a two-hour movie may be broadcast on seven consecutive channels with the starting broadcast time of each channel offset by fifteen minutes from that of a neighboring channel, such that the beginning of the movie is effectively available on one of the channels once every fifteen minutes. A problem with such NVOD systems is that the programs being broadcast are predetermined and are shown in temporally fixed intervals. As such, a viewer wishing to watch such programs must choose from among the available options without having any opportunity to influence either the selection of the program (i.e. the particular movie), the times at which it is broadcast, or the frequency of which the program is broadcast (the transmission interval).
Other delivery systems have attempted to alleviate some of the problems associated with traditional NVOD systems by altering the manner in which the programs are transmitted from the video server to each individual viewer. Examples of such systems are disclosed in U.S. Pat. No. 6,018,359, invented by Kermode, et al. entitled System and method for multicast video-on-demand delivery system; and U.S. Pat. No. 5,936,659, invented by Viswanathan, et al., entitled Method for video delivery using pyramid broadcasting. 
In the Viswanathan method, each program is divided into segments of geometrically increasing size with the server transmission capacity evenly divided into a preset number of logical channels. Each channel broadcasts an assigned segment repeatedly, in an infinitely looping fashion. The viewer's receiver sequentially downloads the various video segments, playing back previously downloaded segments even as new segments are loaded. Playback commences as soon as the first segment is fully downloaded and since this segment is the shortest, the time period between receiving a view request and the time of playback is relatively short.
In the Kermode, et al. method, video files are divided into sequentially organized data segments. The Kermode method provides the advantage of allowing the data segments to be downloaded asynchronously, that is download of a new segment need not await the arrival of the initial (or previous) segment over the transmission channel. The length of the data segments is chosen so that a set number of channels are used efficiently and the receiver is capable of receiving data from no less than two channels. The received data is then reordered by the receiver prior to playback.
At least one of the problems associated with these types of systems is that they normally require a storage device or large amounts of memory at the receiver to enable program downloading and uninterrupted program view. Moreover, these systems afford little flexibility to the viewer in determining which programs are shown. Although these methods eliminate some of the problems with traditional delivery mechanisms, they do not alleviate the problem inherent in broadband delivery systems, i.e., limited bandwidth. Because broadband delivery systems must continue to offer conventional and emerging broadcast services and offer services at a cost attractive to consumers, they must manage channel usage effectively. Consequently, only a limited number of channels are available and only certain programs may be shown. Although these methods allow certain pre-selected programs to be requested and viewed almost immediately, only a limited number of programs can be offered at any one time. Because the programs offered must be determined ahead of time, viewers have no way to express which movies they prefer to see nor the capability to enact random access operations on the broadcast programming.
Thus, there is a need for a delivery system which includes a means for intelligent and efficient management of bandwidth allocation in a manner that makes optimal use of the available bandwidth and provides viewers with a greater degree of control over bandwidth allocation.